/*
 * @Author: your name
 * @Date: 2021-10-16 16:07:58
 * @LastEditTime: 2021-10-16 16:27:08
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \luogu\动态规划\背包\01背包\P1926 小书童——刷题大军\main.cpp
 */
#include<iostream>
#include<algorithm>
using namespace std;

//f1[i] 做作业 i分钟能够获得的最高分
int f1[160];

//刷题时间存储
int a1[15];
//作业时间存储
int a2[15];
//作业分值存储
int a3[15];

int main(){
    int n,m,k,r;
    cin >> n >> m >> k >> r;
    for(int i=1; i<=n; i++)
        cin >> a1[i];
    for(int i=1; i<=m; i++)
        cin >> a2[i];
    for(int i=1; i<=m; i++)
        cin >> a3[i];
    //计算及格的最短时间付出
    for(int i=1; i<=m; i++){
        for(int j=r; j>=a2[i]; j--){
            f1[j] = max(f1[j],f1[j-a2[i]]+a3[i]);
        }
    }
    //剩余最多时间
    int remain = 0;
    for(int i=r; i>=0; i--){
        if(f1[i] < k){
            //需要花费i+1分钟完成作业
            remain = r-i-1;
            break;
        }
    }
    //在时间remain内做尽可能多的题目 不是背包了 只做用时少的就行嘛 贪心+排序
    //插入排序
    for(int i=2; i<=n; i++){
        if(a1[i] > a1[i-1]){
            a1[0] = a1[i];
            int j;
            for(j=i-1; a1[j]>a1[0]; j--){
                a1[j+1] = a1[j];
            }
            a1[j+1] = a1[0];
        }
    }

    //从左到右刷题
    //题目数
    int qnum = 0;
    for(int i=1; i<=n; i++){
        if(remain >= a1[i]){
            qnum++;
            remain -= a1[i];
        }
    }
    cout << qnum << endl;
    return 0;
}
